package com.kzj.service;

import com.kzj.domain.ElectiveCourse;
import com.kzj.domain.Teacher;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kzj.domain.dto.ChangePasswordDTO;
import com.kzj.domain.dto.InputScoreDTO;
import com.kzj.domain.dto.UserLoginDTO;
import com.kzj.domain.vo.FreeClassroomDTO;
import com.kzj.global.re.Result;
import org.springframework.transaction.annotation.Transactional;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author kzj
 * @since 2023-12-01
 */
@Transactional
public interface TeacherService extends IService<Teacher> {

    Result login(UserLoginDTO userLoginDTO);
    Result addTeacher(Teacher teacher);
    Result update(Teacher teacher);
    Result changePassword(ChangePasswordDTO changePasswordDTO);
    Result getTeacherById(String id);
    Result getAllTeacherByAcademyId(String academyId);

    Result getCourseList();

    Result getArrangeCourseList();


    Result getManagerialStudent();

    Result getFreeClassroom(FreeClassroomDTO freeClassroomDTO);

    Result getInvigilatorInformation(String teacherId);

    Result inputScore(InputScoreDTO inputScoreDTO);

    Result getStudentInformationThatCanBeEnteredIntoGrades();

    Result addElectiveCourse(ElectiveCourse electiveCourse);

    Result getSchedule(String term);

    Result getCurrentTermSchedule();

    Result getNextTermSchedule();

    Result getCanDeleteElectiveCourseList();
    Result getCanDeleteElectiveCourseList(String teacherId);
    Result updateTeacher(Teacher teacher);
}
